package com.xiaoze.question.service;

import java.util.List;

import com.xiaoze.common.core.domain.TreeSelect;
import com.xiaoze.common.core.domain.entity.SysDept;
import com.xiaoze.question.domain.QuestionScenario;
import com.xiaoze.question.dto.QuestionAnswerUserInput;
import com.xiaoze.question.dto.QuestionAnswerUsersOutput;
import com.xiaoze.question.dto.QuestionScenarioListOutput;
import com.xiaoze.question.dto.QuestionScenarioTreeOutput;

/**
 * 业务场景管理Service接口
 *
 * @author 胡昊泽
 * @date 2024-08-02
 */
public interface IQuestionScenarioService {
    /**
     * 查询业务场景管理
     *
     * @param id 业务场景管理ID
     * @return 业务场景管理
     */
    public QuestionScenario selectQuestionScenarioById(Long id);

    // 查询该问卷下得所有题目以及对应的题目选项
    public QuestionAnswerUsersOutput selectQuestionScenarioForUser(QuestionAnswerUserInput questionAnswerUserInput);

    /**
     * 查询业务场景管理列表
     *
     * @param questionScenario 业务场景管理
     * @return 业务场景管理集合
     */
    public List<QuestionScenarioListOutput> selectQuestionScenarioList(QuestionScenario questionScenario);


    /**
     * 构建前端所需要下拉树结构
     *
     * @param questionScenario 业务场景管理
     * @return 下拉树结构列表
     */
    public List<QuestionScenarioTreeOutput> selectQuestionScenarioTreeList(QuestionScenario questionScenario);
    /**
     * 新增业务场景管理
     *
     * @param questionScenario 业务场景管理
     * @return 结果
     */
    public int insertQuestionScenario(QuestionScenario questionScenario);

    /**
     * 修改业务场景管理
     *
     * @param questionScenario 业务场景管理
     * @return 结果
     */
    public int updateQuestionScenario(QuestionScenario questionScenario);

    /**
     * 批量删除业务场景管理
     *
     * @param ids 需要删除的业务场景管理ID
     * @return 结果
     */
    public int deleteQuestionScenarioByIds(Long[] ids);

    /**
     * 删除业务场景管理信息
     *
     * @param id 业务场景管理ID
     * @return 结果
     */
    public int deleteQuestionScenarioById(Long id);
}
